﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LabChecker.Models.Programs.Exceptions;

namespace LabChecker.Models.Programs
{
    class CppErrorDictionary
    {
        private readonly Dictionary<int, string> _errorDictionary = new Dictionary<int, string>();

        public CppErrorDictionary()
        {
            _errorDictionary.Add(2, "Try to check Task Manager for \"Zombie\"-proc");
            _errorDictionary.Add(-1073741676, "DIVIDE_BY_ZERO");
            _errorDictionary.Add(-1073741819, "ACCESS_VIOLATION");
            _errorDictionary.Add(5, "Time out exception");
            _errorDictionary.Add(-1, "Unknown error during compilation process");
        }

        public string FindError(int errorCode)
        {
            //Сообщение об ошибке
            string errMes;

            //Проверяем ошибку по словарю, если неизвестная - последнее значение
            if (!_errorDictionary.TryGetValue(errorCode, out errMes))
            {
                errMes = _errorDictionary.Last().Value.ToString();
            }           

            return errMes;
        }
    }
}
